type go/types.Chan

53 uses

	go/types (current package)
		builtins.go#L176: 		case *Slice, *Chan:
		builtins.go#L194: 				case *Array, *Slice, *Chan:
		builtins.go#L251: 			uch, _ := u.(*Chan)
		builtins.go#L529: 			case *Slice, *Map, *Chan:
		builtins.go#L546: 		case *Map, *Chan:
		chan.go#L11: type Chan struct {
		chan.go#L27: func NewChan(dir ChanDir, elem Type) *Chan {
		chan.go#L28: 	return &Chan{dir: dir, elem: elem}
		chan.go#L32: func (c *Chan) Dir() ChanDir { return c.dir }
		chan.go#L35: func (c *Chan) Elem() Type { return c.elem }
		chan.go#L37: func (c *Chan) Underlying() Type { return c }
		chan.go#L38: func (c *Chan) String() string   { return TypeString(c, nil) }
		expr.go#L202: 		ch, _ := u.(*Chan)
		expr.go#L216: 		return u.(*Chan).elem
		expr.go#L469: 	case *Pointer, *Signature, *Slice, *Map, *Chan:
		infer.go#L622: 	case *Chan:
		infer.go#L775: 	case *Chan:
		mono.go#L236: 		case *Chan:
		operand.go#L253: 	case *Chan:
		operand.go#L391: 	if Vc, ok := Vu.(*Chan); ok && Vc.dir == SendRecv {
		operand.go#L392: 		if Tc, ok := Tu.(*Chan); ok && Identical(Vc.elem, Tc.elem) {
		predicates.go#L176: 	case *Pointer, *Chan:
		predicates.go#L215: 	case *Slice, *Pointer, *Signature, *Map, *Chan:
		predicates.go#L462: 	case *Chan:
		predicates.go#L465: 		if y, ok := y.(*Chan); ok {
		range.go#L213: 		if ch, _ := u.(*Chan); ch != nil && ch.dir == SendOnly {
		range.go#L239: 	case *Chan:
		subst.go#L235: 	case *Chan:
		subst.go#L238: 			return &Chan{dir: t.dir, elem: elem}
		typestring.go#L268: 	case *Chan:
		typestring.go#L275: 			if c, _ := t.elem.(*Chan); c != nil && c.dir == RecvOnly {
		typexpr.go#L386: 		typ := new(Chan)
		under.go#L111: 		if chu, _ := cu.(*Chan); chu != nil {
		under.go#L112: 			if ch, _ := u.(*Chan); ch != nil {
		unify.go#L436: 						if yc, _ := under(y).(*Chan); yc != nil && yc.dir != SendRecv {
		unify.go#L727: 	case *Chan:
		unify.go#L731: 		if y, ok := y.(*Chan); ok {

	golang.org/x/exp/apidiff
		compatibility.go#L23: 	case *types.Chan:
		compatibility.go#L24: 		if new, ok := new.(*types.Chan); ok {
		compatibility.go#L47: func (d *differ) checkCompatibleChan(otn *types.TypeName, old, new *types.Chan) {
		correspondence.go#L54: 	case *types.Chan:
		correspondence.go#L55: 		if new, ok := new.(*types.Chan); ok {

	golang.org/x/tools/go/types/objectpath
		objectpath.go#L482: 	case *types.Chan:

	golang.org/x/tools/go/types/typeutil
		map.go#L301: 	case *types.Chan:
		map.go#L450: 	case *types.Chan:

	golang.org/x/tools/internal/gcimporter
		iexport.go#L1046: 	case *types.Chan:

	golang.org/x/tools/internal/typeparams
		coretype.go#L41: 	ch, ok := U.(*types.Chan)
		coretype.go#L49: 		curr, ok := terms[chans].Type().Underlying().(*types.Chan)
		free.go#L108: 	case *types.Chan:

	golang.org/x/tools/internal/typesinternal
		element.go#L84: 		case *types.Chan:
		zerovalue.go#L54: 	case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature:
		zerovalue.go#L147: 	case *types.Pointer, *types.Slice, *types.Chan, *types.Map, *types.Signature:
		zerovalue.go#L260: 	case *types.Chan: